#ifndef _LT_LOTUS_EDITOR_H_
#define _LT_LOTUS_EDITOR_H_

namespace MyGUI
{
	class Gui;
}

class Editor:OIS::KeyListener,OIS::MouseListener
{
public:
	Editor();
	virtual ~Editor();

	void initialise();
	void shutdown();

	void activate();

	fastsig::signal<void (const OIS::KeyEvent&)>						KeyPressedEvent;
	fastsig::signal<void (const OIS::KeyEvent&)>						KeyReleasedEvent;

	fastsig::signal<void (const OIS::MouseEvent&)>						MouseMovedEvent;
	fastsig::signal<void (const OIS::MouseEvent&, OIS::MouseButtonID)>  MousePressedEvent;
	fastsig::signal<void (const OIS::MouseEvent&, OIS::MouseButtonID)>  MouseReleasedEvent;

private:
	bool keyPressed( const OIS::KeyEvent &arg );
	bool keyReleased( const OIS::KeyEvent &arg );
	bool mouseMoved( const OIS::MouseEvent &arg );
	bool mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id );
	bool mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id );

	fastsig::connection editorConnection;
	MyGUI::Gui* gui;

};

#endif